home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.LayoutManager;
- import java.awt.Panel;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.net.MalformedURLException;
- import java.net.URL;
-
- public final class JMxPlayer extends Panel implements Runnable, JMxTimeable, JMxLoadStatus {
- public static final int MX_PLAYER_INIT = 0;
- public static final int MX_PLAYER_STARTED = 1;
- public static final int MX_PLAYER_WAITFOR_ALL = 2;
- public static final int MX_PLAYER_STOP_WAITFOR_ALL = 3;
- public static final int MX_PLAYER_PLAYING = 4;
- public static final int MX_PLAYER_STOPPLAYING = 5;
- public static final int MX_PLAYER_FAILED = 6;
- public static final int MX_PLAYER_WAITFOR_SOUND = 7;
- public static final int MX_PLAYER_STOP_WAITFOR_SOUND = 8;
- public static final int MX_PLAYER_WAITFOR_IMAGE = 9;
- public static final int MX_PLAYER_STOP_WAITFOR_IMAGE = 10;
- public static final int MX_PLAYER_WAITFOR_ID = 11;
- public static final int MX_SCROLL_TIME = 10;
- public static final int MX_SCROLL_FAST = 15;
- public static final int MX_SCROLL_MEDIUM = 30;
- public static final int MX_SCROLL_SLOW = 45;
- public URL m_urlDefaultPath;
- public JMxApplet m_Owner;
- private Frame m_BrowserFrame;
- private int m_State;
- public JMxMediaLoader m_MediaLoader;
- public boolean m_WaitForAll = true;
- public JMxMediaItem m_WaitForID;
- public boolean m_bImageAllDone;
- public JMxEventQ m_EventQ;
- public Event m_ScrollEvt;
- public Event m_PlayNextEvt;
- public Thread m_PlayThread;
- public int m_PlayThreadPriority = 5;
- private JMxTimer m_PlayTimer;
- private JMxTimer m_ScrollTimer;
- private int m_PlayInterval;
- private int m_NextStartTime;
- private Position m_NextMediaPos;
- private int m_FinalEndTime;
- private JObList m_MediaList;
- private JObList m_FirstFrameList;
- private JObList m_PlayList;
- private JObList m_ScrollList;
- private JObList m_LogicList;
- private JMxMedia m_MouseEffectMedia;
- private JMxMedia m_LogicClickMedia;
- private Point m_CurMousePoint;
- public Image m_OffScrImage;
- private int m_ScrollInterval;
- private int m_ScrollSpeed;
- private int m_ScrollTickCount;
- private int m_NewNextStartTime;
- int[] m_TransitionUsage;
- int[] m_ClassUsage;
- boolean m_RunOnce;
- boolean m_UseSleep;
- static final int MX_SLEEP_TIME = 100;
- boolean m_JVM10;
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- this.m_EventQ.Send(var1);
- return true;
- }
-
- private int CheckFileStatus(JMxMedia var1) {
- if (var1.IsLogic()) {
- return 8;
- } else {
- JMxMediaItem var2 = var1.GetMediaItem();
- if (var2 == null) {
- return 4;
- } else {
- int var3 = var2.GetStatus();
- if (var3 != 1 && !this.m_bImageAllDone) {
- var2.PrepareMxImage();
- }
-
- return var3;
- }
- }
- }
-
- private void RedrawCachedImage(JObList var1, boolean var2, boolean var3) {
- Graphics var4 = ((Component)this).getGraphics();
- Dimension var5 = ((Component)this).size();
- if (var4 != null) {
- Graphics var6 = this.m_OffScrImage.getGraphics();
- if (var3) {
- var6.setColor(((Component)this).getBackground());
- var6.fillRect(0, 0, var5.width, var5.height);
- }
-
- if (!var1.IsEmpty()) {
- Position var7 = var1.GetHeadPosition();
- Object var8 = null;
-
- while(var7.element != null) {
- JMxMedia var9 = (JMxMedia)var1.GetNext(var7);
- var9.GetMediaItem().PrepareMxImage();
- var9.Refresh(var6);
- }
- }
-
- if (var2) {
- var4.drawImage(this.m_OffScrImage, 0, 0, this);
- }
-
- var4.dispose();
- var6.dispose();
- }
-
- }
-
- private boolean CheckRolloverStatus(JMxMedia var1) {
- JMxMediaItem var2 = var1.GetRolloverSoundObject();
- int var3 = 0;
- if (var2 != null) {
- var3 = var2.GetStatus();
- if (var3 == 1) {
- return true;
- }
-
- if (var3 == 4 || var3 == 2) {
- var1.SetRolloverSoundObject((JMxMediaItem)null);
- }
- }
-
- var2 = var1.GetRolloverImageObject();
- if (var2 != null) {
- var3 = var2.GetStatus();
- if (var3 == 1) {
- return true;
- }
-
- if (var3 == 4 || var3 == 2) {
- var1.SetRolloverImageObject((JMxMediaItem)null);
- }
-
- var2.PrepareMxImage();
- }
-
- return false;
- }
-
- private boolean StopTimeoutMedia(JObList var1, int var2) {
- int var3 = var2;
- boolean var4 = false;
- if (!var1.IsEmpty()) {
- Position var5 = var1.GetHeadPosition();
- Position var6 = new Position(var5.element);
- Object var7 = null;
-
- while(var5.element != null) {
- var6.element = var5.element;
- JMxMedia var10 = (JMxMedia)var1.GetNext(var5);
- if (var10.GetEndTime() <= this.m_NextStartTime) {
- if (!var10.GetAlwaysShow()) {
- var4 = true;
- if (this.m_MouseEffectMedia != null && var10.equals(this.m_MouseEffectMedia)) {
- Graphics var8 = ((Component)this).getGraphics();
- Graphics var9 = this.m_OffScrImage.getGraphics();
- this.HideMouseEffect(var10, var8, var9, false);
- var9.dispose();
- var8.dispose();
- this.m_MouseEffectMedia = null;
- }
-
- if (this.m_LogicClickMedia != null && var10.equals(this.m_LogicClickMedia)) {
- this.m_LogicClickMedia.HideMouseEffect();
- this.m_LogicClickMedia = null;
- }
-
- this.StopMedia(var10, var6);
- var1.RemoveAt(var6);
- }
- } else {
- var3 = Math.min(var3, var10.GetEndTime());
- }
- }
- }
-
- this.m_NewNextStartTime = var3;
- return var4;
- }
-
- private void CloseAllMediaOnList(JObList var1, boolean var2) {
- if (!var1.IsEmpty()) {
- Position var3 = var1.GetTailPosition();
- Position var4 = new Position(var3.element);
- Object var5 = null;
-
- while(var3.element != null) {
- var4.element = var3.element;
- JMxMedia var6 = (JMxMedia)var1.GetPrev(var3);
- if (var2) {
- this.StopMedia(var6, var4);
- } else {
- var6.Stop();
- }
- }
- }
-
- }
-
- private boolean ProcessLogic(JMxMedia var1) {
- if (var1 == null) {
- return true;
- } else {
- JMxHotSpot var2 = var1.GetCurHotspot();
- if (var2 == null) {
- return true;
- } else if (var2.m_Action == -1) {
- return true;
- } else {
- int var3 = this.m_CurMousePoint.x;
- int var4 = this.m_CurMousePoint.y;
- if (var2.m_Action != 2 && !this.PrepareToJump()) {
- return true;
- } else {
- switch (var2.m_Action) {
- case -1:
- default:
- return true;
- case 0:
- case 1:
- this.m_NextStartTime = var2.m_IntData;
- this.m_CurMousePoint.x = var3;
- this.m_CurMousePoint.y = var4;
- return false;
- case 2:
- String var5 = var2.m_StrData;
- String var6 = null;
- int var7 = var5.lastIndexOf(" target=");
- if (var7 != -1) {
- try {
- String var8 = "";
- var8 = var5.substring(0, var7);
- int var9 = var5.length();
- if (var7 + 8 < var9) {
- var6 = var5.substring(var7 + 8, var9);
- }
-
- var5 = var8;
- } catch (StringIndexOutOfBoundsException var12) {
- var5 = var2.m_StrData;
- var6 = null;
- }
- }
-
- try {
- URL var14 = new URL(this.m_urlDefaultPath, var5);
- if (var6 == null) {
- if (!this.PrepareToJump()) {
- return true;
- }
-
- this.m_Owner.getAppletContext().showDocument(var14);
- } else {
- this.m_Owner.getAppletContext().showDocument(var14, var6);
- }
- } catch (MalformedURLException var11) {
- JMxLog.Log(3, "Process Logic -- malformed URL\n" + ((Throwable)var11).toString());
- }
-
- return true;
- }
- }
- }
- }
- }
-
- public void HandleScrollEvent(Event var1) {
- if (!this.m_ScrollList.IsEmpty()) {
- this.m_ScrollTickCount += this.m_ScrollSpeed;
- if (this.m_ScrollTickCount > 0) {
- Graphics var2 = ((Component)this).getGraphics();
- Graphics var3 = this.m_OffScrImage.getGraphics();
- Position var4 = this.m_ScrollList.GetHeadPosition();
- Object var5 = null;
-
- while(var4.element != null) {
- JMxMedia var7 = (JMxMedia)this.m_ScrollList.GetNext(var4);
- if (this.m_ScrollTickCount % var7.GetTransInLength() == 0) {
- if (var7.GetTransparent()) {
- Rectangle var6 = var7.GetPlaybackRect();
- this.RefreshArea(var6, this.m_PlayList, (JMxMedia)null, (Position)null, (JMxMedia)null, var3, (JObList)null, true);
- this.RefreshArea(var6, this.m_ScrollList, var7, (Position)null, (JMxMedia)null, var3, (JObList)null, false);
- }
-
- var7.Play(var2, var3);
- } else {
- var7.Refresh(var3);
- }
- }
-
- if (this.m_MouseEffectMedia != null && !this.m_MouseEffectMedia.IsScrollable()) {
- this.m_MouseEffectMedia.Refresh(var3);
- }
-
- var2.drawImage(this.m_OffScrImage, 0, 0, this);
- var3.dispose();
- var2.dispose();
- if (this.m_ScrollTickCount == MX_SCROLL_SLOW) {
- this.m_ScrollTickCount = 0;
- }
-
- this.m_ScrollTimer.Start((long)this.m_ScrollInterval);
- }
- }
- }
-
- public boolean HandleRestartEvent() {
- int var1 = this.m_MediaLoader.GetLoadStatus();
- boolean var2 = true;
- if (var1 == 0) {
- var2 = false;
- if (this.m_State == 3) {
- this.m_State = 2;
- } else if (this.m_State == 10) {
- this.m_State = 9;
- } else if (this.m_State == 8) {
- this.m_State = 7;
- } else {
- var2 = true;
- }
- } else if (var1 == 1) {
- this.SetupAllImage();
- var2 = true;
- }
-
- this.m_MediaLoader.Resume();
- if (var2) {
- this.StartPlaying();
- }
-
- return true;
- }
-
- public void HandleQuitEvent() {
- this.m_State = 0;
- this.m_PlayTimer.Kill();
- this.m_ScrollTimer.Kill();
- this.m_PlayTimer = null;
- this.m_ScrollTimer = null;
- this.m_MediaLoader.Stop();
- this.m_MediaLoader = null;
- this.ResetAllData();
- this.m_FirstFrameList.RemoveAll();
- this.m_MediaList.RemoveAll();
- this.m_MediaList = null;
- this.m_FirstFrameList = null;
- this.m_PlayList = null;
- this.m_ScrollList = null;
- this.m_LogicList = null;
- }
-
- public boolean FindMouseEffectMedia(JObList var1, Point var2) {
- boolean var3 = false;
- if (var1 == null) {
- return var3;
- } else {
- if (!var1.IsEmpty()) {
- Position var4 = var1.GetTailPosition();
- Object var5 = null;
- JMxLong var6 = new JMxLong(0L);
-
- while(var4.element != null) {
- JMxMedia var7 = (JMxMedia)var1.GetPrev(var4);
- if (var7.HasMouseEffect(var6, var2)) {
- var3 = true;
- if (var6.m_Value == 1L) {
- this.m_MouseEffectMedia = var7;
- }
- break;
- }
- }
-
- Object var8 = null;
- }
-
- return var3;
- }
- }
-
- public boolean Restart() {
- if (!this.m_PlayThread.isAlive()) {
- return false;
- } else {
- this.m_EventQ.FlushAll();
- Event var1 = new Event(this, 98982, (Object)null);
- this.m_EventQ.Send(var1);
- synchronized(this){}
-
- try {
- try {
- this.notifyAll();
- } catch (Exception var8) {
- JMxLog.Log(3, "Exception while waking up playthred");
- ((Throwable)var8).printStackTrace();
- }
- } catch (Throwable var9) {
- throw var9;
- }
-
- return true;
- }
- }
-
- public void Stop() {
- if (this.m_PlayThread.isAlive()) {
- Event var1 = new Event(this, 98981, Thread.currentThread());
- this.m_EventQ.Send(var1);
- synchronized(this){}
-
- try {
- try {
- this.wait();
- } catch (Exception var8) {
- JMxLog.Log(3, "Exception while waiting for playthred to stop\n");
- ((Throwable)var8).printStackTrace();
- }
- } catch (Throwable var9) {
- throw var9;
- }
-
- } else {
- JMxLog.Log(3, "JMxPlayer playthread is dead\n");
- }
- }
-
- public JMxPlayer(JMxApplet var1) {
- this.m_ScrollSpeed = MX_SCROLL_SLOW;
- this.m_ScrollTickCount = -1;
- this.m_JVM10 = true;
- this.m_Owner = var1;
- this.m_urlDefaultPath = this.m_Owner.getDocumentBase();
- this.m_WaitForAll = this.m_Owner.m_WaitForAll;
- Object var2 = this.m_Owner;
-
- while(var2 != null) {
- var2 = ((Component)var2).getParent();
- if (var2 instanceof Frame) {
- this.m_BrowserFrame = (Frame)var2;
- break;
- }
- }
-
- this.m_EventQ = new JMxEventQ();
- this.m_ScrollEvt = new Event(this, 98985, (Object)null);
- this.m_PlayNextEvt = new Event(this, 98984, (Object)null);
- this.m_PlayTimer = new JMxTimer(this);
- this.m_ScrollTimer = new JMxTimer(this);
- this.m_CurMousePoint = new Point(-1, -1);
- this.m_MediaList = new JObList();
- this.m_FirstFrameList = new JObList();
- this.m_PlayList = new JObList();
- this.m_ScrollList = new JObList();
- this.m_NextMediaPos = new Position((Object)null);
- this.m_LogicList = new JObList();
- ((Container)this).setLayout((LayoutManager)null);
- String var3 = System.getProperty("os.name");
- if (!var3.startsWith("Window")) {
- this.m_UseSleep = true;
- }
-
- String var4 = System.getProperty("java.version");
- if (var4.startsWith("1.0")) {
- this.m_JVM10 = true;
- } else {
- this.m_JVM10 = false;
- }
-
- System.out.println("java version: " + var4);
- }
-
- public void DrawTopImages(JObList var1, Graphics var2, Rectangle var3) {
- if (var1 != null) {
- if (!var1.IsEmpty()) {
- Position var4 = var1.GetHeadPosition();
- Object var5 = null;
- new Rectangle(0, 0, 0, 0);
-
- while(var4.element != null) {
- JMxMedia var8 = (JMxMedia)var1.GetNext(var4);
- Rectangle var6 = var3.intersection(var8.GetPlaybackRect());
- if (!var6.isEmpty()) {
- Graphics var7 = var2.create(var6.x - var3.x, var6.y - var3.y, var6.width, var6.height);
- var7.translate(-var6.x, -var6.y);
- var8.Refresh(var7);
- var7.dispose();
- }
- }
- }
-
- }
- }
-
- public boolean HandleMouseDown(Event var1) {
- if (this.m_State != 4 && this.m_State != 11) {
- this.m_CurMousePoint.x = var1.x;
- this.m_CurMousePoint.y = var1.y;
- return true;
- } else {
- if (var1.x != this.m_CurMousePoint.x || var1.y != this.m_CurMousePoint.y || this.m_MouseEffectMedia == null && this.m_LogicClickMedia == null) {
- this.ProcessMouseEffect(true);
- }
-
- JMxMedia var2 = this.m_LogicClickMedia;
- if (var2 == null) {
- var2 = this.m_MouseEffectMedia;
- }
-
- if (var2 != null) {
- boolean var3 = this.ProcessLogic(var2);
- if (!var3) {
- this.ProcessMoreMedia();
- }
- }
-
- return true;
- }
- }
-
- private boolean BuildNextPlayList(JObList var1, JObList var2) {
- Position var3 = new Position(this.m_NextMediaPos.element);
- Position var4 = new Position(this.m_NextMediaPos.element);
- Object var5 = null;
- Position var6 = null;
- JMxMedia var7 = null;
- int var8 = -1;
- JObList var9 = new JObList();
-
- while(var4.element != null) {
- var3.element = var4.element;
- JMxMedia var12 = (JMxMedia)this.m_MediaList.GetNext(var4);
- if (var12.GetStartTime() > this.m_NextStartTime) {
- var6 = var3;
- var7 = var12;
- break;
- }
-
- if (var12.GetEndTime() > this.m_NextStartTime) {
- var8 = this.CheckFileStatus(var12);
- boolean var10 = false;
- if (var8 == 1) {
- var10 = true;
- } else if (var8 == 8) {
- var10 = this.CheckRolloverStatus(var12);
- if (!var10) {
- if (var12.IsScrollable()) {
- var2.AddTail(var12);
- } else if (var12.IsLogic() && var12.HasHotSpot()) {
- var9.AddTail(var12);
- } else {
- var1.AddTail(var12);
- }
-
- if (!var12.GetAlwaysShow()) {
- this.m_NewNextStartTime = Math.min(this.m_NewNextStartTime, var12.GetEndTime());
- }
- }
- }
-
- if (var10) {
- this.m_State = 11;
- this.SetWaitID(var12.GetMediaItem());
- var2.RemoveAll();
- var1.RemoveAll();
- var9.RemoveAll();
- Object var14 = null;
- this.m_NewNextStartTime = this.m_NextStartTime;
- return false;
- }
- }
- }
-
- if (!var1.IsEmpty()) {
- Position var16 = var1.GetHeadPosition();
- Object var11 = null;
-
- while(var16.element != null) {
- JMxMedia var18 = (JMxMedia)var1.GetNext(var16);
- this.m_PlayList.AddTail(var18);
- }
- }
-
- if (!var9.IsEmpty()) {
- Position var17 = var9.GetHeadPosition();
- Object var19 = null;
-
- while(var17.element != null) {
- JMxMedia var20 = (JMxMedia)var9.GetNext(var17);
- this.m_LogicList.AddTail(var20);
- }
-
- var9.RemoveAll();
- }
-
- Object var15 = null;
- if (var6 != null) {
- this.m_NewNextStartTime = Math.min(this.m_NewNextStartTime, var7.GetStartTime());
- }
-
- if (var6 != null) {
- this.m_NextMediaPos.element = var6.element;
- } else {
- this.m_NextMediaPos.element = null;
- }
-
- return true;
- }
-
- public void RedrawDirtyRect(Rectangle var1, Graphics var2) {
- this.RefreshArea(var1, this.m_PlayList, (JMxMedia)null, (Position)null, (JMxMedia)null, var2, (JObList)null, true);
- this.RefreshArea(var1, this.m_ScrollList, (JMxMedia)null, (Position)null, (JMxMedia)null, var2, (JObList)null, false);
- }
-
- public void SetMediaList(JObList var1) {
- if (var1 == null) {
- this.m_MediaList.RemoveAll();
- } else {
- this.m_MediaList = var1;
- }
-
- for(int var2 = 0; var2 < this.m_TransitionUsage.length; ++var2) {
- JMxGraphic.CreateTransitionObj(this.m_TransitionUsage[var2]);
- }
-
- }
-
- public void SetClassUsage(int[] var1) {
- if (var1 != null) {
- this.m_ClassUsage = var1;
- }
-
- }
-
- public void SetupAllImage() {
- if (!this.m_bImageAllDone) {
- if (!this.m_MediaList.IsEmpty()) {
- Position var1 = this.m_MediaList.GetHeadPosition();
- Object var2 = null;
-
- while(var1.element != null) {
- JMxMedia var4 = (JMxMedia)this.m_MediaList.GetNext(var1);
- JMxMediaItem var3 = var4.GetMediaItem();
- if (var3 != null) {
- var3.PrepareMxImage();
- }
-
- var3 = var4.GetRolloverImageObject();
- if (var3 != null) {
- var3.PrepareMxImage();
- }
- }
- }
-
- this.m_bImageAllDone = true;
- }
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
-
- public boolean HandlePaint(Event var1) {
- Graphics var2 = ((Component)this).getGraphics();
- if (var2 == null) {
- return true;
- } else {
- if (this.m_OffScrImage != null) {
- var2.drawImage(this.m_OffScrImage, 0, 0, this);
- } else {
- this.m_Owner.showStatus("Java media downloading...");
- var2.drawString("Java media downloading...", 10, 20);
- }
-
- var2.dispose();
- return true;
- }
- }
-
- public void Quit() {
- if (this.m_PlayThread.isAlive()) {
- Event var1 = new Event(this, 98983, (Object)null);
- this.m_EventQ.Send(var1);
- }
-
- synchronized(this){}
-
- try {
- try {
- this.notifyAll();
- } catch (Exception var7) {
- JMxLog.Log(3, "Exception while waking up playthred");
- ((Throwable)var7).printStackTrace();
- }
- } catch (Throwable var8) {
- throw var8;
- }
-
- }
-
- private void DrawFirstFrame() {
- Dimension var1 = ((Component)this).size();
- if (this.m_OffScrImage == null) {
- this.m_OffScrImage = ((Component)this).createImage(var1.width, var1.height);
- }
-
- this.RedrawCachedImage(this.m_FirstFrameList, true, true);
- }
-
- private void SetWaitID(JMxMediaItem var1) {
- if (var1 == null) {
- this.m_WaitForID = null;
- this.m_Owner.showStatus("");
- } else {
- this.m_WaitForID = var1;
- this.m_Owner.showStatus("Java media downloading...");
- }
- }
-
- public boolean HandleMouseMove(Event var1) {
- this.m_CurMousePoint.x = var1.x;
- this.m_CurMousePoint.y = var1.y;
- if (this.m_State != 4 && this.m_State != 11) {
- return true;
- } else {
- this.ProcessMouseEffect(true);
- return true;
- }
- }
-
- private boolean PrepareToJump() {
- this.CloseAllMedia(true);
- this.ResetAllData();
- this.m_PlayTimer.Stop();
- this.m_ScrollTimer.Stop();
- Dimension var1 = ((Component)this).size();
- Graphics var2 = this.m_OffScrImage.getGraphics();
- var2.setColor(((Component)this).getBackground());
- var2.fillRect(0, 0, var1.width, var1.height);
- var2.dispose();
- Event var3 = this.m_EventQ.GetStopEvent();
- if (var3 == null) {
- return true;
- } else {
- this.HandleStopEvent((Thread)var3.arg);
- return false;
- }
- }
-
- private void ProcessMouseEffect(boolean var1) {
- Graphics var2 = ((Component)this).getGraphics();
- Graphics var3 = this.m_OffScrImage.getGraphics();
- boolean var4 = false;
- JMxMedia var5 = this.m_MouseEffectMedia;
- this.m_MouseEffectMedia = null;
- var4 = this.FindMouseEffectMedia(this.m_ScrollList, this.m_CurMousePoint);
- if (!var4) {
- var4 = this.FindMouseEffectMedia(this.m_PlayList, this.m_CurMousePoint);
- }
-
- if (this.m_MouseEffectMedia != null && var5 != null) {
- if (!var5.equals(this.m_MouseEffectMedia)) {
- this.HideMouseEffect(var5, var2, var3, var1);
- this.ShowMouseEffect(this.m_MouseEffectMedia, var2, var3, var1);
- } else if (this.m_MouseEffectMedia.IsHotSpotChangedWithin()) {
- this.ShowMouseEffect(this.m_MouseEffectMedia, var2, var3, var1);
- } else {
- this.m_MouseEffectMedia.Refresh(var3);
- }
- } else if (var5 != null && this.m_MouseEffectMedia == null) {
- this.HideMouseEffect(var5, var2, var3, var1);
- } else if (var5 == null && this.m_MouseEffectMedia != null) {
- this.ShowMouseEffect(this.m_MouseEffectMedia, var2, var3, var1);
- }
-
- var3.dispose();
- var2.dispose();
- byte var6 = 0;
- this.m_LogicClickMedia = null;
- JMxMedia var7 = this.m_MouseEffectMedia;
- this.m_MouseEffectMedia = null;
- this.FindMouseEffectMedia(this.m_LogicList, this.m_CurMousePoint);
- this.m_LogicClickMedia = this.m_MouseEffectMedia;
- this.m_MouseEffectMedia = var7;
- if (this.m_LogicClickMedia != null) {
- var6 = 12;
- } else if (this.m_MouseEffectMedia != null && this.m_MouseEffectMedia.HasHotSpot()) {
- var6 = 12;
- }
-
- if (this.m_BrowserFrame != null) {
- this.m_BrowserFrame.setCursor(var6);
- }
-
- }
-
- private void HideMouseEffect(JMxMedia var1, Graphics var2, Graphics var3, boolean var4) {
- boolean var5 = var1.HideMouseEffect();
- if (var5) {
- Rectangle var6 = var1.GetPlaybackRect();
- this.RefreshArea(var6, this.m_PlayList, (JMxMedia)null, (Position)null, (JMxMedia)null, var3, (JObList)null, true);
- this.RefreshArea(var6, this.m_ScrollList, (JMxMedia)null, (Position)null, (JMxMedia)null, var3, (JObList)null, false);
- if (var4) {
- Graphics var7 = var2.create(var6.x, var6.y, var6.width, var6.height);
- var7.translate(-var6.x, -var6.y);
- var7.drawImage(this.m_OffScrImage, 0, 0, this);
- var7.dispose();
- Object var8 = null;
- }
- }
-
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.m_EventQ.Send(var1);
- return true;
- }
-
- private void StartMediaDownload() {
- boolean var1 = true;
- this.m_MediaLoader = new JMxMediaLoader(this);
- if (!this.m_MediaList.IsEmpty()) {
- Position var2 = this.m_MediaList.GetHeadPosition();
- Object var3 = null;
- Object var4 = null;
- boolean var5 = false;
- Rectangle var6 = new Rectangle(0, 0, 0, 0);
- boolean var7 = false;
-
- while(var2.element != null) {
- JMxMedia var10 = (JMxMedia)this.m_MediaList.GetNext(var2);
- String var8 = var10.GetLiteFileName();
- if (var8 != null && var8.length() != 0) {
- if (var10.IsAudio()) {
- var10.SetMediaItem(this.m_MediaLoader.AddSound(var8));
- } else if (var10.IsGraphic()) {
- Rectangle var11 = var10.GetPlaybackRect();
- var5 = var10.GetTransparent();
- var7 = var10.AdjustGraphicRect(var6);
- var10.SetMediaItem(this.m_MediaLoader.AddImage(var8, var11.width, var11.height, var5, var7, var6.width, var6.height));
- String var9 = var10.GetRolloverSoundFileName();
- if (var9.length() != 0) {
- var10.SetRolloverSoundObject(this.m_MediaLoader.AddSound(var9));
- }
-
- var9 = var10.GetRolloverImageFileName();
- if (var9.length() != 0) {
- var10.SetRolloverImageObject(this.m_MediaLoader.AddImage(var9, var11.width, var11.height, var5, var7, var6.width, var6.height));
- }
-
- if (var10.GetStartTime() == this.m_NextStartTime) {
- if (var10.GetTransInType() == 0) {
- if (!var10.IsAudio() && var1) {
- this.m_FirstFrameList.AddTail(var10);
- var10.SetInFirstFrame();
- }
- } else {
- var1 = false;
- }
- }
- }
- }
- }
-
- this.m_MediaLoader.StartLoading(this.m_WaitForAll);
- }
-
- }
-
- public void paint(Graphics var1) {
- if (this.m_EventQ != null) {
- Event var2 = new Event(this, 98980, (Object)null);
- this.m_EventQ.Send(var2);
- }
- }
-
- public void HandlePlayEvent() {
- if (!this.m_ScrollList.IsEmpty()) {
- this.m_ScrollTimer.Stop();
- }
-
- this.StopTimeoutMedia(this.m_PlayList, this.m_FinalEndTime);
- this.StopTimeoutMedia(this.m_ScrollList, this.m_NewNextStartTime);
- this.StopTimeoutMedia(this.m_LogicList, this.m_NewNextStartTime);
- this.ProcessMoreMedia();
- }
-
- private void ScaleAllMedia() {
- this.m_FinalEndTime = 0;
- int var1 = 0;
- int var2 = 0;
- Dimension var3 = ((Component)this).size();
- if (var3.height != 0 && var3.width != 0) {
- if (!this.m_MediaList.IsEmpty()) {
- Position var4 = this.m_MediaList.GetHeadPosition();
- Object var5 = null;
-
- for(Object var6 = null; var4.element != null; this.m_FinalEndTime = Math.max(this.m_FinalEndTime, var12.GetEndTime())) {
- var12 = (JMxMedia)this.m_MediaList.GetNext(var4);
- Rectangle var15 = var12.GetLayoutRect();
- var1 = Math.max(var1, var15.x + var15.width);
- var2 = Math.max(var2, var15.y + var15.height);
- }
-
- if (var1 == 0 || var2 == 0) {
- return;
- }
-
- double var7 = (double)var3.width / (double)var1;
- double var9 = (double)var3.height / (double)var2;
- var4 = this.m_MediaList.GetHeadPosition();
- var5 = null;
-
- while(var4.element != null) {
- JMxMedia var14 = (JMxMedia)this.m_MediaList.GetNext(var4);
- Rectangle var16 = var14.GetLayoutRect();
- var14.SetPlaybackRect((int)((double)var16.x * var7), (int)((double)var16.y * var9), (int)((double)var16.width * var7), (int)((double)var16.height * var9), var7, var9);
- }
- }
-
- }
- }
-
- private void StopMedia(JMxMedia var1, Position var2) {
- if (!var1.IsGraphic()) {
- var1.Stop();
- } else {
- Graphics var3 = this.m_OffScrImage.getGraphics();
- Graphics var4 = ((Component)this).getGraphics();
- if (var1.HasTransOutEffect()) {
- var4.drawImage(this.m_OffScrImage, 0, 0, this);
- }
-
- Rectangle var5 = var1.GetPlaybackRect();
- JObList var6 = new JObList();
- this.RefreshArea(var5, this.m_PlayList, (JMxMedia)null, (Position)null, var1, var3, var6, true);
- this.RefreshArea(var5, this.m_ScrollList, (JMxMedia)null, (Position)null, var1, var3, var6, false);
- if (this.m_MouseEffectMedia != null && !this.m_MouseEffectMedia.equals(var1) && !this.m_MouseEffectMedia.IsScrollable() && var5.intersects(this.m_MouseEffectMedia.GetPlaybackRect())) {
- this.m_MouseEffectMedia.Refresh(var3);
- var6.AddTail(this.m_MouseEffectMedia);
- }
-
- if (!var1.HasTransOutEffect()) {
- var1.Stop();
- } else {
- var1.Stop(this.m_OffScrImage, var6, var4, var3);
- }
-
- var3.dispose();
- Object var7 = null;
- var4.dispose();
- Object var8 = null;
- Object var9 = null;
- Object var10 = null;
- }
- }
-
- private void CloseAllMedia(boolean var1) {
- if (this.m_WaitForID != null) {
- this.SetWaitID((JMxMediaItem)null);
- }
-
- this.CloseAllMediaOnList(this.m_ScrollList, var1);
- this.CloseAllMediaOnList(this.m_PlayList, var1);
- }
-
- public void tick(JMxTimer var1) {
- Event var2 = null;
- if (var1 == this.m_ScrollTimer) {
- var2 = this.m_ScrollEvt;
- } else if (var1 == this.m_PlayTimer) {
- var2 = this.m_PlayNextEvt;
- }
-
- if (var2 != null) {
- this.m_EventQ.Send(var2);
- }
-
- }
-
- private void RefreshArea(Rectangle var1, JObList var2, JMxMedia var3, Position var4, JMxMedia var5, Graphics var6, JObList var7, boolean var8) {
- if (var8) {
- var6.setColor(((Component)this).getBackground());
- var6.fillRect(var1.x, var1.y, var1.width, var1.height);
- }
-
- if (!var2.IsEmpty()) {
- Object var9 = null;
- Position var15;
- if (var4 != null) {
- var15 = new Position(var4.element);
- var2.GetNext(var15);
- } else {
- var15 = var2.GetHeadPosition();
- }
-
- Object var10 = null;
- Object var11 = null;
- new Rectangle(0, 0, 0, 0);
- boolean var13 = false;
-
- while(var15.element != null) {
- JMxMedia var16 = (JMxMedia)var2.GetNext(var15);
- if (var3 != null && var3.equals(var16)) {
- break;
- }
-
- if (var5 != null && var5.equals(var16)) {
- var13 = true;
- } else {
- Rectangle var17 = var16.GetPlaybackRect();
- Rectangle var12 = var1.intersection(var17);
- if (!var12.isEmpty()) {
- Graphics var14 = var6.create(var12.x, var12.y, var12.width, var12.height);
- var14.translate(-var12.x, -var12.y);
- var16.Refresh(var14);
- var14.dispose();
- if (var7 != null && var13) {
- var7.AddTail(var16);
- }
- }
- }
- }
- }
-
- }
-
- private void ProcessMoreMedia() {
- boolean var1 = true;
- Graphics var2 = ((Component)this).getGraphics();
- Graphics var3 = this.m_OffScrImage.getGraphics();
- if (this.m_NextMediaPos != null) {
- JObList var4 = new JObList();
- JObList var5 = new JObList();
- JMxMedia var6 = null;
- boolean var7 = false;
-
- while(!var7) {
- var1 = this.BuildNextPlayList(var4, var5);
- if (var1) {
- if (!var4.IsEmpty()) {
- var6 = this.PlayMediaOnList(var4, var2, var3, true);
- var4.RemoveAll();
- }
-
- if (!this.m_ScrollList.IsEmpty()) {
- this.PlayMediaOnList(this.m_ScrollList, var2, var3, false);
- }
-
- if (!var5.IsEmpty()) {
- this.PlayMediaOnList(var5, var2, var3, true);
- Position var8 = var5.GetHeadPosition();
- Object var9 = null;
-
- while(var8.element != null) {
- JMxMedia var14 = (JMxMedia)var5.GetNext(var8);
- this.m_ScrollList.AddTail(var14);
- }
-
- var5.RemoveAll();
- }
-
- if (var6 == null) {
- var7 = true;
- } else {
- var2.drawImage(this.m_OffScrImage, 0, 0, this);
- var7 = this.ProcessLogic(var6);
- if (this.m_State == 5) {
- var2.dispose();
- var3.dispose();
- return;
- }
- }
- } else {
- var7 = true;
- }
- }
- }
-
- var2.dispose();
- var3.dispose();
- Event var12 = this.m_EventQ.GetMouseEvent();
- if (var12 != null) {
- this.m_CurMousePoint.x = var12.x;
- this.m_CurMousePoint.y = var12.y;
- Object var13 = null;
- }
-
- if (this.m_CurMousePoint.x != -1 && this.m_CurMousePoint.y != -1) {
- this.ProcessMouseEffect(false);
- }
-
- var2 = ((Component)this).getGraphics();
- var2.drawImage(this.m_OffScrImage, 0, 0, this);
- var2.dispose();
- this.m_EventQ.FlushAll(98985);
- this.SetNextPlayEvent();
- }
-
- private JMxMedia PlayMediaOnList(JObList var1, Graphics var2, Graphics var3, boolean var4) {
- boolean var5 = true;
- JMxMedia var6 = null;
- if (!var1.IsEmpty()) {
- Position var7 = var1.GetHeadPosition();
- Object var8 = null;
-
- while(var7.element != null) {
- JMxMedia var10 = (JMxMedia)var1.GetNext(var7);
- if (var4) {
- if (var10.HasTransInEffect()) {
- var2.drawImage(this.m_OffScrImage, 0, 0, this);
- }
-
- var5 = var10.Play(var2, var3);
- if (!var5) {
- if (var10.IsLogic()) {
- var6 = var10;
- }
- break;
- }
- } else {
- var10.Refresh(var3);
- }
- }
- }
-
- return var6;
- }
-
- public void SetTransitionUsage(int[] var1) {
- if (var1 != null) {
- this.m_TransitionUsage = var1;
- }
-
- }
-
- private void StartPlaying() {
- this.m_State = 4;
- Dimension var1 = ((Component)this).size();
- if (this.m_OffScrImage == null) {
- this.m_OffScrImage = ((Component)this).createImage(var1.width, var1.height);
- }
-
- if (!this.m_RunOnce) {
- this.m_RunOnce = true;
- Graphics var2 = this.m_OffScrImage.getGraphics();
- Image var3 = ((Component)this).createImage(var1.width, var1.height);
- Graphics var4 = var3.getGraphics();
- JObList var5 = new JObList();
- if (!this.m_MediaList.IsEmpty()) {
- Position var6 = this.m_MediaList.GetHeadPosition();
- Object var7 = null;
-
- while(var6.element != null) {
- JMxMedia var15 = (JMxMedia)this.m_MediaList.GetNext(var6);
- if (var15.HasTransInEffect()) {
- int var8 = var15.GetTransInType();
- if (!var15.GetTransparent() && (var8 == 6 || var8 == 54 || var8 == 55)) {
- var15.Play(var4, var2);
- }
- }
-
- if (var15.HasTransOutEffect()) {
- int var16 = var15.GetTransOutType();
- if (!var15.GetTransparent() && (var16 == 6 || var16 == 54 || var16 == 55)) {
- var15.Stop(this.m_OffScrImage, var5, var4, var2);
- }
- }
- }
- }
-
- var2.setColor(((Component)this).getBackground());
- var2.fillRect(0, 0, var1.width, var1.height);
- var2.dispose();
- Object var9 = null;
- var4.dispose();
- Object var13 = null;
- var3.flush();
- Object var12 = null;
- Object var14 = null;
- } else {
- Graphics var10 = this.m_OffScrImage.getGraphics();
- var10.setColor(((Component)this).getBackground());
- var10.fillRect(0, 0, var1.width, var1.height);
- var10.dispose();
- Object var11 = null;
- }
-
- this.m_Owner.showStatus("AURALINE Java Player Applet");
- this.HandlePlayEvent();
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- this.m_EventQ.Send(var1);
- return true;
- }
-
- private void ResetAllData() {
- if (this.m_WaitForID != null) {
- this.SetWaitID((JMxMediaItem)null);
- }
-
- this.m_PlayList.RemoveAll();
- this.m_ScrollList.RemoveAll();
- this.m_LogicList.RemoveAll();
- this.m_MouseEffectMedia = null;
- this.m_CurMousePoint.x = -1;
- this.m_CurMousePoint.y = -1;
- this.m_LogicClickMedia = null;
- this.m_PlayInterval = 0;
- this.m_NewNextStartTime = this.m_FinalEndTime;
- if (!this.m_MediaList.IsEmpty()) {
- this.m_NextMediaPos = this.m_MediaList.GetHeadPosition();
- JMxMedia var1 = (JMxMedia)this.m_MediaList.GetHead();
- this.m_NextStartTime = var1.GetStartTime();
- } else {
- this.m_NextStartTime = 0;
- this.m_FinalEndTime = 0;
- this.m_NextMediaPos.element = null;
- }
- }
-
- private void ShowMouseEffect(JMxMedia var1, Graphics var2, Graphics var3, boolean var4) {
- if (var1.GetRolloverType() != 1 && var1.GetRolloverType() != 2 && !var1.IsHighLightable()) {
- var1.ShowMouseEffect(var3);
- } else {
- Rectangle var5 = var1.GetPlaybackRect();
- JObList var6 = null;
- if (var1.IsHighLightable()) {
- var6 = new JObList();
- }
-
- this.RefreshArea(var5, this.m_PlayList, (JMxMedia)null, (Position)null, var1, var3, (JObList)null, true);
- this.RefreshArea(var5, this.m_ScrollList, (JMxMedia)null, (Position)null, var1, var3, var6, false);
- var1.ShowMouseEffect(var3);
- Graphics var7 = var3.create(var5.x, var5.y, var5.width, var5.height);
- if (var6 != null) {
- this.DrawTopImages(var6, var7, var5);
- }
-
- var7.dispose();
- Object var9 = null;
- if (var4) {
- Graphics var8 = var2.create(var5.x, var5.y, var5.width, var5.height);
- var8.translate(-var5.x, -var5.y);
- var8.drawImage(this.m_OffScrImage, 0, 0, this);
- var8.dispose();
- Object var10 = null;
- return;
- }
- }
-
- }
-
- public void run() {
- if (this.m_State == 1) {
- this.m_PlayThreadPriority = this.m_PlayThread.getPriority();
- if (this.m_WaitForAll) {
- this.m_State = 2;
- } else {
- this.m_State = 7;
- }
-
- this.ResetAllData();
- this.ScaleAllMedia();
- this.StartMediaDownload();
- }
-
- while(true) {
- Event var1 = this.m_EventQ.Recv();
- if (var1 == null) {
- if (this.m_UseSleep) {
- try {
- Thread.sleep(100L);
- } catch (InterruptedException var5) {
- ((Throwable)var5).printStackTrace();
- }
- } else {
- Thread.yield();
- }
- } else {
- switch (var1.id) {
- case 501:
- this.HandleMouseDown(var1);
- break;
- case 503:
- this.HandleMouseMove(var1);
- break;
- case 505:
- this.HandleMouseExit(var1);
- break;
- case 98980:
- this.HandlePaint(var1);
- break;
- case 98981:
- this.HandleStopEvent((Thread)var1.arg);
- break;
- case 98982:
- if (!this.HandleRestartEvent()) {
- return;
- }
- break;
- case 98983:
- this.HandleQuitEvent();
- return;
- case 98984:
- this.HandlePlayEvent();
- break;
- case 98985:
- this.HandleScrollEvent(var1);
- break;
- case 98986:
- switch (this.m_State) {
- case 2:
- this.m_State = 9;
- case 3:
- case 4:
- case 5:
- case 6:
- default:
- continue;
- case 7:
- this.StartPlaying();
- continue;
- }
- case 98987:
- JMxMediaItem var2 = (JMxMediaItem)var1.arg;
- if (var2 != null) {
- var2.PrepareMxImage();
- }
-
- if (this.m_State == 11 && this.m_WaitForID != null && this.m_WaitForID.equals(var2)) {
- this.m_State = 4;
- this.SetWaitID((JMxMediaItem)null);
- this.HandlePlayEvent();
- }
- break;
- case 98988:
- try {
- this.m_PlayThread.setPriority(this.m_PlayThreadPriority);
- } catch (Exception var4) {
- ((Throwable)var4).printStackTrace();
- }
-
- this.SetupAllImage();
- switch (this.m_State) {
- case 2:
- case 9:
- this.StartPlaying();
- case 7:
- default:
- continue;
- case 11:
- this.m_State = 4;
- this.SetWaitID((JMxMediaItem)null);
- this.HandlePlayEvent();
- continue;
- }
- case 98989:
- switch (this.m_State) {
- case 2:
- case 7:
- case 9:
- this.DrawFirstFrame();
- }
- }
- }
- }
- }
-
- public boolean HandleMouseExit(Event var1) {
- if (this.m_BrowserFrame != null) {
- this.m_BrowserFrame.setCursor(0);
- }
-
- if (this.m_MouseEffectMedia != null) {
- Graphics var2 = ((Component)this).getGraphics();
- Graphics var3 = this.m_OffScrImage.getGraphics();
- this.HideMouseEffect(this.m_MouseEffectMedia, var2, var3, true);
- var2.dispose();
- var3.dispose();
- this.m_MouseEffectMedia = null;
- }
-
- this.m_CurMousePoint.x = -1;
- this.m_CurMousePoint.y = -1;
- this.m_LogicClickMedia = null;
- return true;
- }
-
- public boolean Play() {
- this.m_State = 1;
- this.m_PlayThread = new Thread(this, "NetMC PlayThread");
- this.m_PlayThread.start();
- return true;
- }
-
- public void HandleStopEvent(Thread var1) {
- this.m_PlayTimer.Stop();
- this.m_ScrollTimer.Stop();
- this.m_MediaLoader.Suspend();
- if (this.m_PlayThread.isAlive()) {
- int var2 = this.m_PlayThread.getPriority();
- if (var2 != this.m_PlayThreadPriority) {
- try {
- this.m_PlayThread.setPriority(this.m_PlayThreadPriority);
- } catch (Exception var12) {
- ((Throwable)var12).printStackTrace();
- }
- }
- }
-
- this.CloseAllMedia(false);
- this.ResetAllData();
- switch (this.m_State) {
- case 2:
- this.m_State = 3;
- break;
- case 7:
- this.m_State = 8;
- break;
- case 9:
- this.m_State = 10;
- break;
- default:
- this.m_State = 5;
- }
-
- if (this.m_BrowserFrame != null) {
- this.m_BrowserFrame.setCursor(0);
- }
-
- this.m_EventQ.FlushAll();
- if (var1.isAlive()) {
- synchronized(this){}
-
- try {
- try {
- this.notifyAll();
- this.wait();
- } catch (Exception var10) {
- ((Throwable)var10).printStackTrace();
- }
- } catch (Throwable var11) {
- throw var11;
- }
-
- }
- }
-
- private void SetNextPlayEvent() {
- this.m_PlayInterval = this.m_NewNextStartTime - this.m_NextStartTime;
- this.m_NextStartTime = this.m_NewNextStartTime;
- if (!this.m_ScrollList.IsEmpty()) {
- this.m_ScrollSpeed = MX_SCROLL_SLOW;
- Position var1 = this.m_ScrollList.GetHeadPosition();
-
- JMxMedia var3;
- for(Object var2 = null; var1.element != null; this.m_ScrollSpeed = Math.min(this.m_ScrollSpeed, var3.GetTransInLength())) {
- var3 = (JMxMedia)this.m_ScrollList.GetNext(var1);
- }
-
- this.m_ScrollInterval = this.m_ScrollSpeed * 10;
- if (this.m_ScrollInterval > this.m_PlayInterval && this.m_PlayInterval != 0) {
- this.m_ScrollInterval = this.m_PlayInterval - 10;
- }
-
- this.m_ScrollTickCount = 0;
- this.m_ScrollTimer.Start((long)this.m_ScrollInterval);
- } else {
- this.m_ScrollInterval = 0;
- this.m_ScrollSpeed = MX_SCROLL_SLOW;
- this.m_ScrollTickCount = -1;
- }
-
- if (this.m_PlayInterval > 0) {
- this.m_PlayTimer.Start((long)this.m_PlayInterval);
- }
-
- }
-
- public void ChangeCursorType(int var1) {
- if (this.m_BrowserFrame != null) {
- this.m_BrowserFrame.setCursor(var1);
- }
-
- }
- }
-